Cada vez que voy a cualquier ruta API en mi aplicación Next.js en producción, devuelve un 500 "Error interno del servidor", pero en desarrollo, todos funcionan completamente bien y muestran/devuelven lo que espero.
Estoy implementando con una instancia de AWS Ec2.
el código está disponible aquí: https://github.com/123om123/NFT-Marketplace
Estas son todas mis rutas API.
[...auth0].js crea las siguientes rutas: /api/auth/login , /api/auth/logout , /api/auth/callback y /api/auth/me
Si trato de acceder a la ruta API "find_account" como la siguiente:
let findAccount = async function () { await fetch("/api/find_account", { method: "POST", body: JSON.stringify({ DBUrl: DBUrl, user_id: user.sub, }), }) .then(async (response) => { await response.json().then((result) => { accountData = result; if (accountData.data.allAccounts.nodes[0].addresses !== null) { setAddressList(accountData.data.allAccounts.nodes[0].addresses[0].split(",")); } }); }) .catch((err) => { return err; }); };que maneja solicitudes como las siguientes:
export default function handler(req, res) { req.body = JSON.parse(req.body); fetch(req.body.DBUrl, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ query: `query MyQuery { allAccounts(condition: {userId:"${req.body.user_id}"}) { nodes { addresses } } }`, }), }) .then((response) => { response.json().then((response) => { res.status(200).send(response); }); }) .catch((err) => { res.status(500).send(err); }); }funciona bien y devuelve la respuesta de la API de graphql en desarrollo, pero en producción muestra el error anterior.
El problema parece ser que las rutas API ni siquiera se crean y, por lo tanto, son inaccesibles. Todas las rutas de la API funcionaban hace unas semanas, pero ahora parece que han dejado de funcionar.
Mira esta respuesta, me ayudó a resolver un error similar al tuyo. En mi caso, cuando Vercel estaba implementando mi sucursal de relaciones públicas, recibía un error interno 500. Una vez que combiné PR con main y vercel realizó una nueva implementación, ahora recibía un error de puerta de enlace 504. La respuesta a continuación me ayudó a descubrir por qué.